#include<iostream>
#include<cmath>
using namespace std;
const int maxn=100;
int n,a[maxn],b[maxn];
int partition(int l,int r,int base)
{
    int i=l-1,j=r+1;
    while(1)
    {
        while(a[++i]<base&&i<r);
        while(a[--j]>base);
        if(i>=j) break;
        swap(a[i],a[j]);
    }
    // a[l]=a[j];
    // a[j]=base;
    return j;
}
void bubblesort(int l,int r)
{
    for(int i=1;i<r;i++)
    {
        for(int j=l;j<=r-i;j++)
        {
            if(a[j]>a[j+1])
            {
                swap(a[j],a[j+1]);
            }
        }
    }
}
int select(int l,int r,int rank)
{
    if(r-l<5)
    {
        bubblesort(l,r);
        return a[l+rank-1];
    }
    for(int i=0;i<=(l-r-4)/5;i++)
    {
        int ll=l+i*5,rr=ll+4;
        bubblesort(ll,rr);
        swap(a[l+i],a[ll+2]);
    }
    int x=select(l,l+(r-l-4)/5,(r-l+6)/10);
    int i=partition(l,r,x),j=i-l+1;
    if(rank==j) return a[i];
    else if(rank<j) return select(l,i-1,rank);
    else return select(i+1,r,rank-j);
}
int main()
{
    int n;cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    int midval=select(1,n,n/2),cnt=0,n4val;
    cout<<midval<<endl;
    for(int i=1;i<=n;i++)
    b[i]=a[i],a[i]=abs(a[i]-midval);
    n4val=select(1,n,n/4);
    for(int i=1;i<=n&&cnt<n/4;i++)
    {
        if(abs(b[i]-midval)<=n4val&&b[i]!=midval)
        cout<<b[i]<<" ",cnt++;
    }
}